import Vue 			from 'vue'
import util 		from '../../util'
import axios 		from 'axios'
import * as qiniu   from 'qiniu-js';
import { Toast,Dialog } 	from 'vant';
Vue.use(Toast,Dialog);

export default {
	name: 'myMore',
	data(){
		return {
			loading:false,
			imgUrl:'',			//要上传的图片二维码
			status:1,			//状态  0:待定   1:等待提交  2:审核中(提交成功)  3:审核驳回
			bigImgUrl:'',		//大图缩略图
			showBigMark:false,	//是否显示大图
		}
	},
	computed:{
		canUpload(){
			//判断按钮是否可以点击
			if(this.imgUrl){
				if(this.status === 1 || this.status === 3){
					return this.loading?false:true
				}else{
					return false
				}
			}else{
				return false
			}
		},
	},
	methods:{
		showExample(){
			//显示示例大图
			this.showBigMark = true;
			this.bigImgUrl = this.$refs.example.currentSrc;
		},
		getQiniuToken(){
			Toast.loading({
				message: '图片上传中...',
				duration:0,
				forbidClick: true
			});
			return new Promise((resolve,reject) => {
				util.fetch(`${util.ajaxUrl}/user/qiniu-token`,{
					token:this.token || util.getToken(),
					bucket:'bbj'
				}).then(res => {
					if(res.retCode === 0){
						resolve(res.retData.token)
					}else{
						Toast(res.retMsg || '未知错误')
					}
				}).catch(error => {
					console.log(error)
				})
			})
		},
		getImgUrlChange(evfile){
			this.getQiniuToken().then(uptoken=>{
	        	var file = evfile.target.files[0]; //Blob 对象，上传的文件
	        	var key = +new Date();  // 上传后文件资源名以设置的 key 为主，如果 key 为 null 或者 undefined，则文件资源名会以 hash 值作为资源名。
	        	let config = {
	          		useCdnDomain: true,   //表示是否使用 cdn 加速域名，为布尔值，true 表示使用，默认为 false。
	          		region: null     // 根据具体提示修改上传地区,当为 null 或 undefined 时，自动分析上传域名区域
	        	};
	        	let putExtra = {
	          		fname: "",  //文件原文件名
	          		params: {}, //用来放置自定义变量
	          		mimeType: null,  //用来限制上传文件类型，为 null 时表示不对文件类型限制；限制类型放到数组里： ["image/png", "image/jpeg", "image/gif"]
	        	};
	        	var observable = qiniu.upload(file, key, uptoken, putExtra, config);
	        	observable.subscribe({
	          		next: (result) => {
	          			// 主要用来展示进度
	          		},
	          		error: (errResult) => {
	          			// 失败报错信息
	          			Toast.clear();
	            		// alert(JSON.stringify(errResult))
	          		},
	          		complete: (res) => {
	          			// 接收成功后返回的信息
	          			this.imgUrl = `https://n-bkt.deepcoin.me/${res.key}`;
	          			console.log(this.imgUrl)
	          			setTimeout(() => {
	          				Toast.clear();
	          			},300)
	          		}
	        	})
	      	})
		},
		getImgUrl(){
			//与app交互，获取图URL
			if(this.status == 2) return;
			util.registerHandler('selectImageCallback',res => {
				this.imgUrl = `https://n-bkt.deepcoin.me/${res.urls[0]}`
			})
			util.callHandler('showSelectImage',{
				types:['cameral','library'],
				count:1
			})
		},
		upload(){
			if(!this.canUpload) return
			this.loading = true;
			util.fetch(`${util.ajaxUrl}/otc/upload-flow`,{
				token:this.token || util.getToken(),
				img:this.imgUrl,
				type:1,		//1银行卡  2:支付宝
			}).then(res => {
				Toast(res.retMsg || '未知错误')
				if(res.retCode === 0){
					this.status = 2;
					// setTimeout(() => {
					// 	this.$router.replace('/',{
					// 		query:{
					// 			death:1
					// 		}
					// 	})
					// },2500)
				}
				this.loading = false;
			}).catch(error => {
				console.log(error)
			})
		},
		init(){
			//检测状态
			util.fetch(`${util.ajaxUrl}/otc/otc-config`,{
				token:this.token || util.getToken(),
			}).then(res => {
				if(res.retCode === 0){
					// bank_flow_status 0未提交 1审核中 2审核成功 3审核失败
					// status:0 //状态  0:待定   1:等待提交  2:审核中(提交成功)  3:审核驳回
					let bank_flow_status = res.retData.bank_flow_status;
					if(bank_flow_status === 0){
						this.status = 1;
					}else if(bank_flow_status === 1 || bank_flow_status === 2){
						this.status = 2;
						this.imgUrl = res.retData.bank_flow_img;
					}else if(bank_flow_status === 3){
						this.status = 3;
						this.imgUrl = '';
					}
				}else{
					Toast(res.retMsg || '未知错误')
				}
			}).catch(error => {
				console.log(error)
			})
		},
		goBack(){
			util.navigateBack(-1,this)
		},
	},
	created() {
		util.waitSDKReady().then(token => {
			this.token = token;
			this.init();
		}).catch((e) => {
			Toast('获取token失败')
		})
		setTimeout(() => {
			//退出登录的时候native调用H5方法清除token缓存
			util.registerHandler('loginOutDeleteToken',res => {
				window.token = '';
				this.token = '';
				localStorage.removeItem('token');
			})
			util.registerHandler('refreshCommonRequestWhenGoBackView',res => {
				if(this.token) this.init();
				util.callHandler('setStatusBarStyle',{
					style:'dark'
				})
			})
			util.callHandler('setStatusBarStyle',{
				style:'dark'
			})
		},300)
    }
}